

import java.util.Scanner;

public class J34SQ7BasicCalendar {

	public static void main(String[] args) {
		// 달력 만들기 V1
		// 년도를 입력하면 해당 년도의 
		// 1월 달력을 출력하는 프로그램
		
		// 양력 달력을 기준으로
		// 1년은 총 365일 또는 366일 임
		// 해당년도가 평년이면 365일이지만
		// 해당년도가 윤년이면 366일임
		// 즉, 평년일 경우 2월은 28일까지,
		// 윤년인 경우 2월은 29일까지 존재
		// 따라서, 양력인 경우 28일, 29일, 30일, 31일등의
		// 4가지 형태가 존재
		
		// 서기 1년 1월 1일은 "월요일"임
		// 총 일수를 7로 나눈 나머지가 
		// 0 : 일, 1 : 월, ... ..., 6 : 토
				
		// 음력 달력
		
		// 변수 선언
		Scanner sc = null;
		StringBuilder sb = null;
		String msg = "출력할 1월 달력의 년도를 입력하세요";
		int thisyear = 0;		// 년도
		int alldays = 0;			// 총일 수
		int myday = 0;			// 1월 1일의 요일
		char woday = ' ';		// 요일명
		int tabCount = 0;		// 탭 사용횟수  
		
		// 년도 입력
		System.out.println( msg );
		sc = new Scanner( System.in );
		thisyear = sc.nextInt();
		sc.close();		
		
		// 총일 수 계산 (평년)
		alldays = (thisyear - 1)  * 365; 
		
		// 총일 수 계산 (윤년)
		// 서기 1년부터 thisyear - 1 년 까지
		// 윤년을 확인해서 해당연도가 윤년이면
		// alldays = alldays + 1
		for (int i = 1; i < thisyear; ++i) {
			if ( (i % 4 == 0 && i % 100 != 0) 
					|| i % 400 == 0 ) 	
				alldays += 1;			// 윤년인 경우
		}
				
		// 요일 계산
		// 지금까지 계산한 총 일수는
		// thisyear-1년 12 월 31일까지임
		// 따라서, thisyear 년 1월 1일의 요일을
		// 계산하려면 총 일수에 하루를 더 더해야 함
		myday = (alldays+1) % 7;
		
		// 요일명 계산
		switch ( myday ) {
			case 0: woday = '일'; break;
			case 1: woday = '월'; break;
			case 2: woday = '화'; break;
			case 3: woday = '수'; break;
			case 4: woday = '목'; break;
			case 5: woday = '금'; break;
			case 6: woday = '토'; break;
		}
		
		// 달력 출력
		sb = new StringBuilder();
		sb.append( thisyear ).append(" 년 1월 달력 \n");
		sb.append( "--------------------------------------- \n" );
		sb.append( "일\t월\t화\t수\t목\t금\t토\n" );
		
		// 공백 처리
		for (int i = 0; i < myday; ++i) {
			sb.append( "\t" );
			++tabCount;
		}
		
		// 실제 일 출력	
		for (int i = 1; i <= 31; ++i ) {
			sb.append( i ).append( "\t" );
			++tabCount;
			if ( tabCount % 7 == 0 ) sb.append( "\n" );
		}
		
		// 결과 출력
		//System.out.println( myday );
		System.out.println( sb.toString() );
		
		// 공식을 이용해서 1월 1일의 요일 구하기
		myday = ( (thisyear-1)*365 + (thisyear-1)/4
			- (thisyear-1)/100 + (thisyear-1)/400 + 1) % 7;
		
		
		
		
		
		
		
		
		
		
		
		
		

	}

}
